package com.esteel.settlement.pa.packet;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

import org.hibernate.validator.constraints.Length;

/**
 * 平台发起的出金操作
 * @author zhangxiuzhi
 *
 */
@XmlRootElement(name="Result") 
@XmlAccessorType(XmlAccessType.FIELD)
public class OutMoneyPB1318 extends OutMoney {

	private static final long serialVersionUID = -2951551304825457590L;

	//会员证件类型
	@XmlElement(name = "IdType")
	@Length(max=2)
	private String idType;
	
	//会员证件号码
	@XmlElement(name = "IdCode")
	@Length(max=20)
	private String idCode;
	
	//出金类型 1:会员出金
	@XmlElement(name = "TranOutType")
	private int tranOutType;
	
	//转账方式 1:行内转账
	@XmlElement(name = "TranType")
	private int tranType;
	
	//出金账号开户行名
	@XmlElement(name = "OutAcctIdBankName")
	@Length(max=120)
	private String outAcctIdBankName;
	
	//出金账号开户联行号
	@XmlElement(name = "OutAcctIdBankCode")
	@Length(max=12)
	private String outAcctIdBankCode;
	
	//出金账号开户行地址
	@XmlElement(name = "Address")
	@Length(max=120)
	private String address;

	
	protected String tranFunc(){
		return "1318";
	}
	
	public String getIdType() {
		return idType;
	}

	public void setIdType(String idType) {
		this.idType = idType;
	}

	public String getIdCode() {
		return idCode;
	}

	public void setIdCode(String idCode) {
		this.idCode = idCode;
	}

	public int getTranOutType() {
		return tranOutType;
	}

	public void setTranOutType(int tranOutType) {
		this.tranOutType = tranOutType;
	}

	public int getTranType() {
		return tranType;
	}

	public void setTranType(int tranType) {
		this.tranType = tranType;
	}

	public String getOutAcctIdBankName() {
		return outAcctIdBankName;
	}

	public void setOutAcctIdBankName(String outAcctIdBankName) {
		this.outAcctIdBankName = outAcctIdBankName;
	}

	public String getOutAcctIdBankCode() {
		return outAcctIdBankCode;
	}

	public void setOutAcctIdBankCode(String outAcctIdBankCode) {
		this.outAcctIdBankCode = outAcctIdBankCode;
	}

	public String getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address;
	}

	@Override
	protected String[] order() {
		String[] args={"tranWebName","thirdCustId","idType","idCode","tranOutType","custAcctId","custName","supAcctId","tranType","outAcctId","outAcctIdName","outAcctIdBankName","outAcctIdBankCode","address","ccyCode","tranAmount","feeOutCustId","reserve"};
		return args;
	}
	
	
}
